home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
bipl.zip
/
PROCS.ZIP
/
GETPATHS.ICN
< prev
next >
Wrap
Text File
|
1992-09-28
|
2KB
|
61 lines
############################################################################
#
# File: getpaths.icn
#
# Subject: Procedure to generate elements in path environment variable
#
# Author: Richard L. Goerwitz
#
# Date: June 1, 1991
#
###########################################################################
#
# Version: 1.3
#
###########################################################################
#
# Suspends, in turn, the paths supplied as args to getpaths(),
# then all paths in the PATH environment variable. A typical
# invocation might look like:
#
# open(getpaths("/usr/local/lib/icon/procs") || filename)
#
# Note that getpaths() will be resumed in the above context until
# open succeeds in finding an existing, readable file. Getpaths()
# can take any number of arguments.
#
############################################################################
#
# Requires: UNIX or MS-DOS
#
############################################################################
procedure getpaths(base_paths[])
local paths, p
static sep, trailer, trimmer
initial {
if find("UNIX", &features) then {
sep := ":"
trailer := "/"
trimmer := cset(trailer || " ")
}
else if find("MS-DOS", &features) then {
sep := ";"
trailer := "\\"
trimmer := cset(trailer || " ")
}
else stop("getpaths: OS not supported.")
}
suspend !base_paths
paths := getenv("PATH")
\paths ? {
tab(match(sep))
while p := 1(tab(find(sep)), move(1))
do suspend ("" ~== trim(p,trimmer)) || trailer
return ("" ~== trim(tab(0),trimmer)) || trailer
}
end